package org.springblade.modules.admin.vo;

import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import org.springblade.modules.admin.entity.MaintainPartsTemplate;
import org.springblade.modules.admin.entity.MaintainPartsTemplateAttribute;
import org.springblade.modules.admin.entity.MaintainPlanContent;
import org.springblade.modules.admin.entity.MaintainTemplateContentScoreDimension;
import org.springblade.modules.admin.enums.TemplateContentStandardEnum;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
    * 工作项内容
    */
@Data
public class TemplateContentDetailVO {

	/**
	 * 工作项id
	 */
	@JsonSerialize(using = ToStringSerializer.class)
	private Long id;

    /**
     * 工作项名称
     */
    private String name;

    /**
     * 工作项要求
     */
    private String require;

	/**
	 * 工作项要求图片
	 */
	private List<HashMap<String,Object>> requireImg;

    /**
     * 位置分类id
     */
    private String locationType;

    /**
     * 位置分类名称
     */
    private String locationTypeName;

    /**
     * 工作项类型id
     */
    private String planType;

    /**
     * 工作项类型名称
     */
    private String planTypeName;

    /**
     * 年检类型id
     */
    private String asType;

    /**
     * 年检类型名称
     */
    private String asTypeName;

    /**
     * 适用梯型id
     */
    private String applyElevatorType;

    /**
     * 适用梯型名称
     */
    private String applyElevatorTypeName;

	/**
	 * 记录数据
	 */
	private JSONObject recordData;

	/**
	 * 标准
	 */
	private Integer standard;

	/**
	 * 标准名称
	 */
	private String standardName;

	/**
	 * 是否参与评分 1-参与 2-不参与
	 */
	private Integer partScore;

	/**
	 * 排序
	 */
	private Integer sort;

	/**
	 * 创建租户id
	 */
	private String tenantId;

	/**
	 * 创建租户名称
	 */
	private String tenantName;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 关联作业指引集合
	 */
	private List<ContentGuideDetailVO> contentGuideDetailVOS;

	/**
	 * 2023-10-25 新增 部件关联
	 */
	private List<MaintainPartsTemplate> partsRelation;

	/**
	 * 2023-10-30
	 * 工作性质，对应字典表 code = work_item_type
	 */
	private String nature;

	/**
	 * 2024-10-14 新增
	 * 维保配件属性
	 */
	private List<MaintainPartsTemplateAttributeDetailVO> partsTemplateRelation;

	private MaintainTemplateContentScoreDimension scoreDimension;

	public void setStandard(Integer standard) {
		this.standard = standard;
		if(ObjectUtil.isNotEmpty(standard)){
			this.standardName = TemplateContentStandardEnum.getName(standard);
		}
	}

}
